package com.window;

import com.event.LoginEvent;
import com.event.RegEvent;

import javax.swing.*;
import java.awt.*;

public class LoginStart extends JFrame {
    FlowLayout flowlayout;//定义一个布局
    JLabel bgimg;//背景
    JLabel register;//注册
    JLabel account;//账号
    JLabel password;//密码
    JLabel title;//标题
    JButton ok;//登录按钮
    public static JTextField accounttext;
    public static JPasswordField passwordtext;
    JPanel jpanel_1;//定义放图片和其他的盘子
    JPanel jpanel_2;//定义放标题的盘子
    JPanel jpanel_3;//定义放账号密码标题和文本框密码框的盘子
    JPanel jpanel_4;//定义放登录按钮的盘子
    final int WIDTH = 500;//框架宽度
    final int HEIGHT = 300;//框架高度

    public LoginStart() {
        super("学生管理系统");
        init();
        setVisible(true);//设置窗口可视化
        setResizable(true);//设置窗口大小可变
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置默认关闭方式
        validate();//让组件生效
        allEvent();
    }

    void init() {
        //设置窗口大小与位置
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int width = screenSize.width;
        int height = screenSize.height;
        int x = (width - WIDTH) / 2;
        int y = (height - HEIGHT) / 2;
        this.setBounds(x, y, WIDTH, HEIGHT);//设置窗口位置与大小

        jpanel_1 = new JPanel();//初始化盘子1
        jpanel_1.setBounds(0, 0, WIDTH, HEIGHT);//设置盘子1位置与大小
        jpanel_1.setLayout(null);//设置布局为空

        jpanel_2 = new JPanel();//初始化盘子2
        jpanel_2.setBounds(0, 40, WIDTH, 50);//设置盘子2位置与大小
        flowlayout = new FlowLayout(FlowLayout.CENTER);
        jpanel_2.setLayout(flowlayout);//设置盘子内容居中布局
        jpanel_2.setOpaque(false);//设置盘子2透明

        jpanel_3 = new JPanel();//初始化盘子3
        jpanel_3.setBounds(100, 100, 300, 100);//设置盘子3位置与大小
        flowlayout = new FlowLayout(FlowLayout.CENTER);
        jpanel_3.setLayout(flowlayout);//设置盘子内容居中布局
        jpanel_3.setOpaque(false);//设置盘子3透明

        jpanel_4 = new JPanel();//初始化盘子4
        jpanel_4.setBounds(200, 180, 100, 50);//设置盘子4位置与大小
        jpanel_4.setOpaque(false);//设置盘子4透明

        //设置背景图片
        ImageIcon img = new ImageIcon("src/img/1.jpg");//将图片放到img变量中
        bgimg = new JLabel(img);    //初始化bgimg
        bgimg.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());//设置背景图片位置

        //设置标题
        title = new JLabel("学生信息管理系统");//初始化title
        Font f = new Font("宋体", Font.BOLD, 28);//初始化字体
        title.setFont(f);//设置标题字体风格
        title.setForeground(Color.CYAN);//设置标题字体颜色

        //设置账号与账号文本框
        account = new JLabel("账号 ");//初始化account
        Font f1 = new Font("宋体", Font.BOLD, 22);//初始化字体
        account.setFont(f1);//设置账号字体风格
        account.setForeground(new Color(225, 228, 181));//设置账号字体颜色
        accounttext = new JTextField(20);//初始化accounttext
        accounttext.setPreferredSize(new Dimension(180, 28));//设置文本框大小
        accounttext.setForeground(new Color(224, 57, 151));//设置文本框字体颜色

        //设置密码与密码框
        password = new JLabel("密码 ");//初始化password
        Font f2 = new Font("宋体", Font.BOLD, 22);//初始化字体
        password.setFont(f2);//设置密码字体风格
        password.setForeground(new Color(225, 228, 181));//设置密码字体颜色
        passwordtext = new JPasswordField(20);//初始化passwordtext
        passwordtext.setPreferredSize(new Dimension(180, 28));//设置密码框大小
        passwordtext.setForeground(new Color(224, 57, 151));//设置密码框字体颜色

        //设置登录按钮
        ok = new JButton("安全登录");//初始化ok
        ok.setFont(f2);//设置登录按钮字体风格
        ok.setBackground(new Color(8, 189, 252));//设置登录按钮背景颜色
        ok.setForeground(new Color(255, 215, 0));//设置登录按钮字体颜色

        //设置注册
        register = new JLabel("注册账号");
        Font f3 = new Font("宋体", Font.BOLD, 16);//初始化字体
        register.setFont(f3);//设置注册字体风格
        register.setForeground(new Color(255, 215, 0));//设置注册字体颜色
        register.setBounds(0, 210, 100, 40);

        //添加操作
        jpanel_1.add(register);//将注册放到盘子1里
        jpanel_3.add(account);//将账号放到盘子3里
        jpanel_3.add(accounttext);//将账号文本框放到盘子3里
        jpanel_3.add(password);//将密码放到盘在3里
        jpanel_3.add(passwordtext);//将密码框放到盘子3里
        jpanel_4.add(ok);//将登录按钮放到盘子4里
        jpanel_2.add(title);//将标题放到盘子2里
        jpanel_1.add(jpanel_2);//将盘子2放到盘子1里
        jpanel_1.add(jpanel_3);//将盘子3放到盘子1里
        jpanel_1.add(jpanel_4);//将盘子4放到盘子1里
        jpanel_1.add(bgimg);//将图片放到盘子1里
        this.add(jpanel_1);//将盘子1放到窗口里
    }

    //定义监听器
    void allEvent() {
        RegEvent regevent = new RegEvent();//创建对象regevent
        register.addMouseListener(regevent);

        LoginEvent a = new LoginEvent();
        ok.addActionListener(a);
    }
}


